package com.ruoyi.settled.mapper;

import java.util.List;
import com.ruoyi.settled.domain.SalesOrderCost;
import com.ruoyi.settled.domain.ProductOrderCost;

/**
 * 成本核算Mapper接口
 * 
 * @author huangchen
 * @date 2025-03-14
 */
public interface SalesOrderCostMapper 
{
    /**
     * 查询成本核算
     * 
     * @param costId 成本核算主键
     * @return 成本核算
     */
    public SalesOrderCost selectSalesOrderCostByCostId(Long costId);

    /**
     * 查询成本核算列表
     * 
     * @param salesOrderCost 成本核算
     * @return 成本核算集合
     */
    public List<SalesOrderCost> selectSalesOrderCostList(SalesOrderCost salesOrderCost);

    /**
     * 新增成本核算
     * 
     * @param salesOrderCost 成本核算
     * @return 结果
     */
    public int insertSalesOrderCost(SalesOrderCost salesOrderCost);

    /**
     * 修改成本核算
     * 
     * @param salesOrderCost 成本核算
     * @return 结果
     */
    public int updateSalesOrderCost(SalesOrderCost salesOrderCost);

    /**
     * 删除成本核算
     * 
     * @param costId 成本核算主键
     * @return 结果
     */
    public int deleteSalesOrderCostByCostId(Long costId);

    /**
     * 批量删除成本核算
     * 
     * @param costIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSalesOrderCostByCostIds(Long[] costIds);

    /**
     * 批量删除${subTable.functionName}
     * 
     * @param costIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProductOrderCostByCostIds(Long[] costIds);
    
    /**
     * 批量新增${subTable.functionName}
     * 
     * @param productOrderCostList ${subTable.functionName}列表
     * @return 结果
     */
    public int batchProductOrderCost(List<ProductOrderCost> productOrderCostList);
    

    /**
     * 通过成本核算主键删除${subTable.functionName}信息
     * 
     * @param costId 成本核算ID
     * @return 结果
     */
    public int deleteProductOrderCostByCostId(Long costId);
}
